package io;/* 项目名称：Task_Du
 * 创建时间：2019年4月2日
 * 创建者：Administrator_wz
 * 创建地点：kmust
 * 功能：二进制流对任何文件进行复制
 */
import java.io.*;//导入java.io包中的所有类
import java.io.FileReader;//导入java.io包中的FileReader类
import java.util.Scanner;//导入java.util包中的Scanner类
import java.util.Date;//导入java.util包中的Date类
public class file6{//创建类名
    public static void main(String[] args)throws IOException{//程序的主函数入口
        try{//用try-catch语句将逻辑语句包起来，并读取指定的文件
            //输入将要复制文件的源地址
            Scanner s1 = new Scanner(System.in);//获取键盘输入并赋值给s1字符串
            System.out.println("请输入想要复制的源地址：");//输入提示信息
            String a = s1.nextLine();//定义字符串变量，并赋值为用户输入的信息
            File file1 = new File(a);//定义待复制文件源地址
            //输入将要复制文件的目的地址
            Scanner s2 = new Scanner(System.in);//获取键盘输入并赋值给s2字符串
            System.out.println("请输入想要复制的目的地址：");//输入提示信息
            String b = s2.nextLine();//定义字符串变量，并赋值为用户输入的信息
            File file2 =new File(b);;//创建待复制文件目的地址
            file2.getParentFile().mkdirs();//创建父级文件路径
            file2.createNewFile();//创建文件
            System.out.println(file2.exists());//输出布尔信息
            FileInputStream c=new FileInputStream(file1);//定义FileInputStream对象
            FileOutputStream d=new FileOutputStream(file2);//定义FileOutputStream对象
            byte[] date=new byte[1024];//定义一个byte数组
            int i=0;//定义一个变量
            while((i=c.read(date))>0){//判断有没有读取到文件末尾
                d.write(date);//写数据
            }
            c.close();//关闭流
            d.close();//关闭流
            System.out.println("源文件已经复制到目的地址！");//输出提示信息
            System.out.println("该文件最后的修改时间是："+new Date(file2.lastModified()));//输出文件的修改时间
        }catch(Exception e){//当代码异常时用catch捕获异常
            e.printStackTrace();//打印异常
        }
    }
}
